Description of Keys & Commands
==============================
Note: English translation still under construction!

Command-Group "BTCH": designed for RK scripts
=============================================


/BTCH.BEEP.ONE ........: To make one "beep"
/BTCH.BEEP.THREE ......: To make three times "beep"
/BTCH.BEEP.HOUR .......: To make hour controlled quantity of "beeps"
------------------------
These commands are useful in combination with the RK event functions like
timer (Event > Time).

Example: {/BTCH.BEEP.ONE}


/BTCH.CR>TAB ..........: To replace carriage returns to tabs within a script
------------------------
This command is designed to give more comfore using scripts which are made to
fill forms. Normally the TAB key is used to jump in a (HTML) form from field
to the next field. This command will help if (for example) an address head
should be copied from Word into a htm form because is is not needed to
include the tab commands (KEY.TAB) into the script by hand.

Example: {/BTCH.CR_TO_TAB}

-> Caution!
This command is inconsistent with BTCH.EXPLICIT, because both commands will
replace founded carriage returns. Therefore do not use EXPLICIT in first
script line if this command is needed.


/BTCH.DDE.BEGIN .......: To include a script for another RK instance
/BTCH.DDE.END .........: To set the end-point of the included DDE-script
------------------------
Eine Beschreibung der DDE-Funktion (in englisch) findet man im Kapitel
"Netzwerk". Je nach Einstellung im "Einstellungen"-Fenster und verfgbarer
Hardware kann der Skript-Bereich zwischen der BEGIN- und END-Anweisung
entweder an eine laufende RK-Instanz innerhalb des Rechners oder an eine
externe, eines im Netzwerk angeschlossenen Rechners laufende Instanz
gesendet werden.


/BTCH.DELAY sec .......: To make a delay before while sending keys & commands
------------------------
Dieser Command ist ein sehr wichtiger, denn oft kommt es vor, da RK beim
Senden der Commands die Abarbeitung der Commands von der angesprochenen
Anwendung sozusagen "berholt". Dadurch knnen Commands verschluckt oder
ungewollte Resultate auslsen werden. Durch Plazierung einiger kleinen
Pausen im Skript gestattet man dem anderen Programm, den Part seines Jobs
erstmal zu Ende zu bearbeiten bevor die nchsten Befehle kommen.
Der sec-Parameter gibt die Pausenlnge in Sekunden an, wobei Werte kleiner
als 1 mglich sind. Wichtig ist, da als Dezimalzeichen der Punkt und nicht
das Komma verwendet wird (0.3 oder 1.5 etc.)!
Beim Systemwechsel auf einen schnelleren Rechner mit schnellerem Disk-Zugriff
knnen die sec-Parameter sicher weiter verringert werden.
Der Makro-Rekorder bedient sich auch dieses Commands, wenn whrend der
Aufzeichnug auf den Pause-Knopf geklickt wird. Im fertig generierten Skript
kann man den sec-Parameter nachtrglich ndern, d.h. i.d.R. wohl verringern.

Example: {/BTCH.DELAY 0.1}


/BTCH.DIVERT>CLIP.ON ..: To divert sending into clip, valid for current script only
/BTCH.DIVERT>CLIP.OFF .: To stop divert mode
------------------------
Gestattet das Senden in die Zwablage anstatt an die aktive Anwendung.
Der OFF-Comand ist nur ntig, wenn z.B. der Skript-Anfang in die Zwablage und der untere Teil
normal gesendet werden soll, da der Divert-Modus am Skript-Ende in jedem Falle deaktiviert wird.

Example: {/BTCH.DIVERT>CLIP.ON}


/BTCH.EXIT-TAG ........: To exit script at this point
------------------------

Example: {/BTCH.EXIT-TAG}


/BTCH.EXITIF.ASK text .: To exit script if cancel was clicked on msg requester
/BTCH.EXITIF.CLIP text : To exit script if clip-content = <text>
/BTCH.EXITIF.VAR= v ...: To exit script if VAR = value <v>
/BTCH.EXITIF.VAR> v ...: To exit script if VAR > value <v>
/BTCH.EXITIF.VAR< v ...: To exit script if VAR < value <v>
------------------------
Works like following command, but with an ASK-msg-requester, clip content query
and VAR content query (see VAR-commands).


/BTCH.EXITIF.CANCEL ...: To exit script if cancel was clicked on last shown dialog
------------------------
This command is valid for following commands:

- BTCH.TEXT.ASK
- BTCH.TEXT.LIST.CLIP
- BTCH.TEXT.LIST.SEND
- CLIP.TXT.ASK
- CLIP.TXT.BEHND.ASK
- DAT.TEMP.ASK
- DB.OPEN (Combo-table-selection)
- DB.REC.SELECT
- DB.TABLE.ASK-S
- DB.TABLE.SELECT
- STR.ASK
- VAR.FLD.ASK

Example:

{/BTCH.EXPLICIT}
{/DB.REC.SELECT}
{/BTCH.EXITIF.CANCEL}
{/DB.FIELD.SET 4}
{/DB.FIELD.SEND}

REC.SELECT showes a selection list dialog. The following commands
will not proceed if the dialog will be closed with cancel.


/BTCH.EXPLICIT ........: To list each command in a single line
------------------------
Long scripts are difficult to read because all commands are written one
by one in a row. It would be cleary arranged if the commands would be
listet each in a single row. But mostly this is not possible because
unwanted carriage returns (CR = ASCII 13) at the linefeeds would be send
to an application.
The EXPLICIT command which should be used at first command in a script
will suppress CRs to get a better readable script and also empty lines
can be included.
Needed CRs can be send with the KEY.ENTER or CODE.ASC 13 command.

Example: {/BTCH.EXPLICIT}

>>> See script sample at the end of this text.


/BTCH.GO-TAG tag ......: To set a jump-mark <tag> (=goto-tag)
------------------------
This command is required for all other GO-commands to define, where to jump.

Example: {/BTCH.GO-TAG mytag}


/BTCH.GO.TO tag .......: To jump to goto-tag <tag>
------------------------

Example: {/BTCH.GO.TO mytag}

The script will be continued at the place where {/BTCH.GO-TAG mytag} will be found.


/BTCH.GOIF.ASK txt,tag : To jump to goto-tag <tag> if cancel was clicked on msg requester 
/BTCH.GOIF.CANCEL tag .: To jump to goto-tag <tag> if cancel was clicked on last dialog 
/BTCH.GOIF.CLIP txt,tag: To jump to goto-tag <tag> if clip-content = <text> 
/BTCH.GOIF.VAR= v,tag .: To jump to goto-tag <tag> if VAR = value <v> (see Var-Commands)
/BTCH.GOIF.VAR> v,tag .: To jump to goto-tag <tag> if VAR > value <v>
/BTCH.GOIF.VAR< v,tag .: To jump to goto-tag <tag> if VAR < value <v>
------------------------

Example:

{/BTCH.EXPLICIT}
{/BTCH.GOIF.ASK Do you want Script B?,test-tag}
{/ME.BUTTON AProfile,ButS1}
{/BTCH.EXIT-TAG}
{/BTCH.GO-TAG test-tag}
{/ME.BUTTON AProfile,ButS1,1}

On click on OK, left button level will be executed of button ButS1.
On Click on Cancel, right button level will be executed of button ButS1.


/BTCH.INSTMODE.ON .....: To insert text by CTRL-v (fast) instead to send
/BTCH.INSTMODE.OFF ....: To switch INSTMODE off
------------------------
Sofern es sich beim zu sendenen Material um Text handelt und die
angesprochene Anwendung den Windows-Einfge-Modus (Strg+v) untersttzt,
ist dies eine sehr schnelle Alternative zum normalen Senden von Text,
besonders fr lngere Textpassagen empfohlen.
Hierzu schaltet man den INSTMODE am besten am Skript-Anfang ein und nach
dem Einfgen des Textes am Skript-Ende wieder aus. Im Einstellen-Dialog
kann man den derzeitigen Zustand (ein/aus) ablesen, gendert werden kann
er dort aber nicht.


/BTCH.LOOP.START.VAL no: To repeat part of a script until LOOP.END for <no> times, fix
/BTCH.LOOP.END ........: To mark end of loop
------------------------
Mit Hilfe der Schleifen-Konstuktion kann der Skriptbereich, der sich zwischen
der Start- und End-Anweisung befindet, wiederholt werden.
Der Parameter <no> (number) gibt die Anzahl der Schleifendurchlufe an.


/BTCH.LOOP.START.VAR no: To repeat part of a script until LOOP.END while <no> smaller than VAR
------------------------
Auch bei der VAR-Varianten wird das Schleifen-Ende durch die o.g. END-Anweisung
festgelegt. Die VAR-Variante bietet aber die Mglichkeit, die Anzahl der
Durchlufe variabel zu halten, indem sie vor Eintritt in die Schleife abgefragt
wird. Die Schleife ist fr Aufwrts-Zhlungen konzipiert.

>>> Siehe Beispiel-Skript 1 am Ende dieses Textes.

In diesem Beispiel kann der Anwender die gewnsche Anzahl der Schleifen-
Durchlufe mittels des ASK-Commands whrend der Abarbeitung des Skripts
festlegen.
Da ein Abwrtszhlen bis 0 nicht funktioniert (die Schleife fragt >= ab),
wird hier ein Trick angewandt, indem der Wert zunchst negativiert wird
(MUL -1) um ihn dann bis 0 raufzuzhlen.


/BTCH.MSG.AUTO sec ....: To open a dialog that showes date, time for <sec> seconds
/BTCH.MSG.TEXT text ...: To open a dialog that showes the message <text>
/BTCH.MSG.TIME [text] .: To open a dialog that showes date, time, cw and a message (text=optional)
------------------------
Diese Commands sind vorwiegend fr die Nutzung des RK-internen Timers
konzipiert, knnen aber auch anderwrtig eingesetzt werden.
Der sec-Parameter steuert die Zeit, die das Fenster geffnet bleibt.
Mit den text-Parametern gibt man einen Text vor, der ausgegeben wird
(im 3. Fall optional).

Examples:

{/BTCH.MSG.AUTO 3}
{/BTCH.MSG.TEXT Columbo fngt gleich an}
{/BTCH.MSG.TIME}
{/BTCH.MSG.TIME Daggi wartet!}


/BTCH.MSG.CLIP ........: To open a dialog that showes the clipboard included text
------------------------

Example: {/BTCH.MSG.CLIP}


/BTCH.POP.OWN .........: To generate and view an individual popmenu
------------------------
Dieser Command gestattet es, ein individuelles Popmen zu kreieren.
Bei Anwahl eines Men-Punktes wird dann ein dem Men-Punkt zugeordneter
Command ausgefhrt, Definition und Ausfhrung also kompakt in einem Skript.
Dem POP.OWN-Command kommt hierbei eine doppelte Funktion zu:

1. Er leitet die Definition des Mens im Skript ein.
2. Er bewirkt, da das Men beim Klick auf den Knopf angezeigt wird.

Das Skript ist so aufgebaut, da Menpunkt-Titel und auszulsender Command
abwechselnd deklariert werden.
Auf den EXPLICIT-Command kann verzichtet werden, denn das Skript ist
- wie im folgenden Beispiel gezeigt - stets untereinander zu listen.


Example:

{/BTCH.POP.OWN}

Play a song
{/ME.BUTTON Store,TimMsg}
Profiles
{/ME.POP.PROF}

Dieses Skript erzeugt ein aus 2 Eintrgen bestehendes Popmen mit den Men-
Punkten "Play a song" und "Profiles". Bei Anwahl eines Men-Punktes wird
sodann der im Skript unter dem Men-Punkt stehende Command ausgefhrt.

Ein Beispiel fr ein eigenes Popmen befindet sich im "OwnPop"-Knopf des
"Store"-Profils.

brigens kann ein solches Popmen auch ber die Ereignis > Tasten Funktion
aufgerufen werden, und das sogar, wenn das RK-Fenster sich gar nicht auf
dem Bildschirm befindet (Versteckt im Systray).

--> Hinweis
Ab v8.1 knnen je Men-Eintrag mehrere Commands definiert werden.
Als Trennung der einzelnen Eintrge dient nicht mehr die geschweifte Klammer,
sondern der Zeilenumbruch.

Example:

{/BTCH.POP.OWN}
Play a song
{/ME.BUTTON Store,TimMsg}{/BTCH.BEEP.ONE}
Profiles
{/ME.POP.PROF}


/BTCH.REM text ........: To include a remark into the script
------------------------

Example: {/BTCH.REM Skript noch nicht fertig}

Beispiel: 
{/BTCH.REM
Skript ist noch nicht fertig!
}

--> Tip
Dieser Command kann auch dazu verwendet werden, den Fokus an die letzte aktive
Anwendung zurckzugeben, sofern RK oder der Profil-Explorer den Fokus gerade
besitzt.

Beispiel (alleinstehend im Skript):
{/BTCH.REM}

Dieses Skript setzt also den Automatismus von RK in Gang, die letzte aktive
Anwendung nach einem Knopf-Klick zu aktivieren, verhindert aber zugleich
(im Gegensatz zum KLick auf einen unbelegten Knopf), da das "Bearbeiten >
Knpfe"-Fenster automatisch geffnet wird.


/BTCH.RETRIEVEFOCUS ...: To cause RK to force the active window for the following sendings
------------------------
In lngeren Skripts, in denen mehrere Fenster geffnet werden, kann RK nicht
verfolgen, welches Fenster am Ende aktiv ist, um die automatische Aktivierung
aufrecht zu erhalten.
Dieser Command veranlat RK dazu, das aktive Fenster neu zu ermitteln.
Ein Beispiel, in dem dieser Command erforderlich war, findet sich im RK-
Profil "Store" unter dem grafischen Explorer-Knopf, der sich in der rechten,
unteren Ecke befindet.


/BTCH.SLOW msec .......: To speed down the sending, msec=0 to switch slow-mode off
------------------------
Wenn ein Skript mit zahlreichen Delay-Commands untersetzt ist, kann es
sinnvoller sein, den Ablauf des Skriptes generell zu verlangsamen,
um schlielich auf die Delay-Commands verzichten zu knnen.
Mit dem msec-Parameter legt man die Verzgerung in Milli-Sekunden fest.
Sptestens am Ende des Skriptes sollte die Verzgerung mit {/BTCH.SLOW 0}
wieder aufgehoben werden. Im Einstellen-Dialog kann man den derzeitigen
Status ablesen, gendert werden kann er dort aber nicht.


/BTCH.STOP ............: To stop the sendings by a click on a stop button
------------------------
Auf das Material, das bereits durch RK abgeschickt wurde, kann RK keinen
Einflu mehr nehmen. Aber die Abarbeitung eines Skriptes kann mit Hilfe
dieses Commands gestoppt werden. Dies ist fast nur in Skripts sinnvoll,
die Schleifen beinhalten.
Der STOP-Command sollte mglichst weit oben im Skript plaziert werden.

>>> Siehe auch das Beispiel-Skript 1 am Ende dieses Textes.


/BTCH.TEXT.ASK [qu,pre]: To send a variable text including a text module, qu=question, pre=preset
------------------------

Examples:

{/BTCH.TEXT.ASK}
{/BTCH.TEXT.ASK Current Year}
{/BTCH.TEXT.ASK Current Year,2002}
{/BTCH.TEXT.ASK ,2002}

Ich bitte um Rckantwort bis zum {/BTCH.TEXT.ASK Please enter the date,??.??.2002}.
MfG

In diesem Beispiel kann das Datum whrend des Sendens des Textes an eine
Anwendung eingegeben werden. Trifft RK nun auf diesen Command, unterbricht er
das Senden und ffnet ein Eingabe-Fenster, in dem das Datum (in diesem
Beispiel) eingegeben wird. Nach dem Schlieen des Fensters wird das Datum in
den Text eingefgt und der restliche Text gesendet.
Selbstverstndlich kann dieser Command mehrfach in einem Text implementiert
werden.
Die Parameter <qu> und <pre> sind optional, um im Eingabe-Requester einen Aufforderungs-Text
(Frage) und/oder einen Vorgabe-Text (Preset) anzuzeigen.

Ein Beispiel fr den Einsazt dieses Commands findet sich im "input"-Knopf
des "Store"-Profils.

--> Tip
Wird der Dialog durch "Abbrechen" geschlossen, so kann die Skript-Abarbeitung
an dieser Stelle durch den Commands "BTCH.EXIT-ON-CANCEL" (siehe dort) beendet
werden.


/BTCH.TEXT.LIST.CLIP ..: To copy a text into the clip, selected from a list which is defined in 2nd plane
/BTCH.TEXT.LIST.SEND ..: To send a text, selected from a list which is defined in 2nd plane (right mouse but.)
------------------------
Diese Commands stellen eine Auswahlbox dar, aus der der Anwender einen Eintrag auswhlen kann,
der entweder gesendet (.SEND) oder in die Zwablage kopiert wird (.CLIP).
Diese Commands knnen nur in der 1. Ebene eines Knopfes (fr die linke Maustaste) eingesetzt werden,
weil in der 2. Ebene (rechte Maustaste) die Liste definiert wird.
Fr diesen Zweck werden die Eintrge einfach untereinander gelistet.

Example:

Plane 1 (linke Maustaste):

Hello {/BTCH.TEXT.LIST.SEND}, how are you?

Plane 2 (rechte Maustaste):

Robin
Paul
Martha

Wird nun der Knopf angeklickt, so erscheint eine Auswahlbox mit den 3 aufgefhrten Namen.
Nach Besttigung durch "OK" wird der Satz mit dem ausgewhlten Namen an die aktive Anwendung
gesendet.

--> Tip
Im Store-Profil veranschaulicht der Knopf "send list" die Funktionsweise


/BTCH.WAIT.TOP title[,t] : To wait until the window <title> comes to top, <t> = sec timeout
/BTCH.WAIT.BACK title[,t]: To wait until the window <title> goes back
--------------------------
Diese Commnds ermglichen die Abarbeitung eines Skriptes anzuhalten, bis ein
spezifiziertes Fenster erscheint bzw. verschwindet. Mit dem Timeout-Parameter
<t> (optional) kann man die auf 10 Sek. vorgegebene Timeout-Zeit verndern.
Die Timeout-Option verhindert, da RK mglicherweise in eine Endlos-Schleife
fllt.
Joker ("*") werden bei der Fenstertitel-Angabe automatisch gesetzt und sind
nicht mit anzugeben, auf Gro- und Kleinschreibung ist allerdings zu achten.

Example: {/BTCH.WAIT.TOP Editor,2}


-----------------

Beispiel-Skript 1
=================

{/BTCH.EXPLICIT}
{/BTCH.STOP}

{/VAR.ASK}
{/VAR.MUL -1}

{/BTCH.LOOP.START.VAR 0}
Test{KEY.ENTER}
{/VAR.ADD 1}
{/BTCH.LOOP.END}
